package packet

import (
	"github.com/axgle/mahonia"
	"hy_808/protocol/hygprs"
)

/*
车载端接收天气预报和广告数据

+0  A0 00 46 02 00 08 B6
+7  01 00 00 00 09
+12 02 00 00 2C 8C
+17 04 00 01 86 A1
+22 06 62 30 CD 45
+27 03 01 类别 标识天气预报和广告，0:天气预报；1：广告；2：图片广告；3：固定标题滚动内容广告；4：外牌显示(用于给外接广告屏显示天气广告图片标题内容)
+29 0D 00 针对广告的操作类别0:设置;1:删除2:全部删除
+31 1C 00 03 针对广告时的广告序号，默认情况下最小序号为0，最大序号为89
+34 1A 00
+36 12 BD D3 D6 D6 D0 C2 B9 DA D2 DF C3 E7 A3 AC B9 B2 D6 FE C3 E2 D2 DF C6 C1 D5 CF A1 A3
-5  00 00 1B AB A1
*/
type Ad struct {
	hygprs.Fields
}

func MakeAd(p hygprs.Fields) Ad {
	return Ad{p}
}

func (p Ad) Type() byte {
	return p.Data[28]
}

func (p Ad) Action() byte {
	return p.Data[30]
}

func (p Ad) SN() uint16 {
	return hygprs.ToUint16(p.Data[32:34])
}

func (p Ad) Content() []byte {
	return p.Data[37 : len(p.Data)-5]
}

func (p Ad) ContentString() string {
	return mahonia.NewDecoder("GBK").ConvertString(string(p.Content()))
}
